FIG. 1 is a schematic diagram illustrating a typical distributed computing network or system 100. The system 100 comprises a plurality of communicatively coupled computing sites 1021-102n (hereinafter collectively referred to as “sites 102”) that each host one or more applications. Each site 102 has access to a respective plurality of local resources (e.g., servers, processors, storage, etc.) 1041-104n (hereinafter collectively referred to as “resources 104”). In addition, each of the sites 102 receives a respective workload 1061-106n (hereinafter collectively referred to as “workloads 106”) comprising requests to applications that run on the sites 102.
Sites 102 employ their respective local resources 104 to satisfy their respective workloads 106. In addition, in a distributed computing system such as the system 100, communicatively coupled sites 102 may share their respective resources 104 with other sites 102, so that a site 102 may borrow resources 104 from a remote site 102 in order to efficiently process its workload 106, or the site 102 may lend its resources 104 to a remote site 102 to assist the remote site 102 in its workload processing. Each site 102 has its own set of policies governing how, when and to/from where the site 102 may lend or borrow resources 104.
These individual policies greatly impact the ability of the overall system 100 to efficiently process workloads 106. However, because such policies vary from site to site, the effects of these policies on the overall system 100 and its ability to process workloads 106 are difficult to quantify.
Thus, there is a need in the art for a method and apparatus for performance and policy analysis in distributed computing systems.